#include <U8g2lib.h>

#include "Arduino.h"
#include "between_face/oled.hpp"
#include "between_face/menu.hpp"
#include "between_face/menu_edit.hpp"


using namespace  beef;

SpinBoxPack<8> boxes;

ConstantStrArray list = {
    "ZERO", "ONE", "TWO", "测试3", "FOUR", "FIVE", "SIX", "SEVEN", "EIGHT", "NINE"
};

MenuEdit menu_edit;

MenuItem item;

void setup() { 
    init_oled();
    u8g2.clearBuffer();

    // u8g2.drawBox(0, 0, 128, 64);  // 全屏清空
    FramePlacing fp;
    fp.frame_x = 13;
    fp.frame_y = 14;
    fp.frame_w = 98;
    fp.frame_h = 38;
    fp.title_offset_x = 0;
    fp.title_offset_y = 0;
    fp.extra_headroom = 0;
    // oled_draw_frame_with_title(fp, "测试SPINBOX", MENU_FONT);

    MenuEditPlacing mep;
    mep.x = 20;
    mep.y = 40;
    mep.w = 8;
    mep.option_w = 60;
    mep.h = 16;

    item.item_label("测试EDIT").as_float(-101.101, 3, 3);
    menu_edit.init(&item, mep, fp);
    // menu_edit.move_right();
    // menu_edit.inc();
    // menu_edit.inc();
    // menu_edit.move_right();
    // menu_edit.inc();
    menu_edit.move_left();
    menu_edit.move_left();
    menu_edit.move_left();
    menu_edit.inc();
    menu_edit.move_left();
    menu_edit.draw(true);

    menu_edit.update();
    menu_edit.finalize();

    u8g2.setCursor(20, 60);
    u8g2.print(item.data.f);

    // boxes.set_range(6, 0, 10);
    // boxes.set_list(list, 10, 3);
    // boxes.set_placing(20, 40, 60, 16);
    // boxes.set_focused_index(0);
    // boxes.split_sum(110);
    // boxes.draw(true);

    u8g2.sendBuffer();
}


void loop() {
    // delay between each page
    delay(100);
}
